package com.atguigu.spzx.user.service;


import com.github.pagehelper.PageInfo;
import vo.common.dto.h5.UserLoginDto;
import vo.common.dto.h5.UserRegisterDto;
import vo.common.entity.user.UserBrowseHistory;
import vo.common.entity.user.UserCollect;
import vo.common.vo.h5.UserInfoVo;


public interface UserInfoService {

    void register(UserRegisterDto userRegisterDto);

    Object login(UserLoginDto userLoginDto);

    UserInfoVo getCurrentUserInfoByRedis(String token);

    UserInfoVo getCurrentUserInfo(String token);

    /**
     * @Description: 新增浏览商品
     * @param id
     */
    void saveUserCollect(Long id);

    /**
     * 浏览商品分页展示
     *
     * @param page
     * @param limit
     * @return
     */
    PageInfo<UserCollect> findUserBrowseHistoryPage(Integer page, Integer limit);

    /**
     * 收藏商品分页展示
     *
     * @param page
     * @param limit
     * @return
     */
    PageInfo<UserBrowseHistory> findUserCollectPage(Integer page, Integer limit);

    /**
     * 取消收藏
     *
     * @param skuId
     */
    void updatecancelCollect(Long skuId);

    /**
     * 商品收藏
     *
     * @param skuId
     */
    void savecollect(Long skuId);

    /**
     * 查看用户是否收藏
     *
     * @param skuId
     * @return
     */
    Boolean findUserisCollect(Long skuId);

    /**
     * 远程调用：获取浏览量最多的商品
     *
     * @return
     */
    UserBrowseHistory getMostFrequentSkuId();

}